function Tree (options , ctx) {
  this.x = options.x || 1200;
  this.y = sence.height - 110;
  this.w = 0;
  this.h = 103;
  this.items = []; // 存放小树苗 一个障碍物 由多个小树构成 
  this.ctx = ctx;
  this.addItem(); // 生成树树 
  this.speed = 5;
  this.distance = randomNum(300, 800)
}

Tree.config = {
  min: 1,  // 最小数量
  max: 3 , // 最大数量 
  same: 2,  // 最大相同类型
}

Tree.info = [
  // 小仙人掌
// 34 * 71 
  {
    x:445,
    y: 0,
    w: 34,
    h: 71,
    count: 6,
  },
  // 大仙人掌
  // 50 * 98 
  {
    x:652,
    y: 0,
    w: 50,
    h: 101,
    count: 4
  },
  // 大仙人掌1
  // 103 *103 
  {
    x:849, 
    y: 0,
    w: 101,
    h: 101
  }
]


Tree.prototype = {

  // 添加树
  addItem () {
    // 生成几个树？
    let n = randomNum(Tree.config.min, Tree.config.max)
    // 分别是那几棵   
      for (i = 0; i < n ; i++) {
        // 只有一颗 1 小树  2 单个大树 3 一家树
        let type = randomNum(1, 4);
        this.items.push(this.getTree(type));   
        this.w += this.items[i].w;
        this.h = this.h < this.items.h ? this.items.h : this.h
      }    
  }, 

  // 生成树的方法
  getTree(type) {
    let t ; // 存放 item树枝的变量 
    let dx = this.x; // 计算当前小树的位置 
    if (this.items.length > 0) { // 有多棵树构成的 
      let last =  this.items[this.items.length -1];
      dx = last.dx + last.w;
    }

    if (type ===1) {
      // 生成小树
      // 那个小树？
      let n = randomNum(0, Tree.info[0].count)
      t = {
        // 树的尺寸
        w: Tree.info[0].w,
        h: Tree.info[0].h,
        // 从哪里截取图片
        x: Tree.info[0].x + Tree.info[0].w * n,  
        y: Tree.info[0].y,
        // 画到那个位置
        dx: dx,
        dy: sence.height - Tree.info[0].h
      }


    } else if (type ===2) {
      // 大树1
        // 那个小树？
        let n = randomNum(0, Tree.info[1].count)
        t = {
          // 树的尺寸
          w: Tree.info[1].w,
          h: Tree.info[1].h,
          // 从哪里截取图片
          x: Tree.info[1].x + Tree.info[1].w * n,
          y: Tree.info[1].y,
           // 画到那个位置
          dx: dx,
          dy: sence.height - Tree.info[1].h
        }
    } else {
      // 大树2 
      t = {
        // 树的尺寸
        w: Tree.info[2].w,
        h: Tree.info[2].h,
        // 从哪里截取图片
        x: Tree.info[2].x,
        y: Tree.info[2].y,
         // 画到那个位置
        dx: dx,
        dy: sence.height - Tree.info[2].h
      }
    }
    t.dy -= 10; // 往上画一点
    return t;
  },

  // 绘制 
  draw() {
    if (this.red) {
      this.ctx.strokeStyle = 'red'
    } else {
      this.ctx.strokeStyle = 'green'
    }
    // this.ctx.strokeRect(this.x, this.y, this.w, this.h); 
    this.items.forEach(v=> {
      this.ctx.drawImage(imgSprite, v.x, v.y, v.w, v.h, v.dx, v.dy, v.w, v.h);   
      this.ctx.lineWidth = 0.5;
      this.ctx.strokeStyle = 'green';
      // this.ctx.strokeRect(v.dx, v.dy, v.w, v.h);  
    })
    this.move();
  },

  // 移动 
  move() {
    this.items.forEach(v=> {
      v.dx -= this.speed
    })
    this.x -= this.speed;
  }
}